<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>undefined类型</title>
</head>
<body>
    <script type="text/javascript">
        // Undefined类型只有一个值, 就是 undefined
        var i; // undefined
        var j = undefined; // undefined
        var k = "undefined"; // string


        // Number 类型
        // 包括那些值?
        // NaN(Not a Number 不是数字), Infinity(无穷大) 也是 Number 类型
        // 整数, 小数, 整数, 负数, 不是数字, 无穷大都属于 Number
        // 何时为 NaN(Not a Number 不是数字) ? 运算结果本来应该是个数字, 但是结果不是数字, 最后的结果就是NaN
        var a = 100;
        var b = "中";
        alert(a/b); // NaN

        var c = "abc";
        var d = 10;
        // + 两侧要是有字符串, 则进行字符串拼接, 不是 NaN
        alert(c + d); // abc10

        // Infinity(当除数为0时, 结果为这个)
        alert(10/0); // Infinity

        // JS 中 数字计算和普通计算一样
        alert(10/3); // 3.3333333333333335

        // 关于 isNaN 函数
        // 用法: isNaN(数据), 是 NaN 返回 true, 不是返回 false
        alert(isNaN(a/b)); // true
        alert(isNaN("123")); // false
        alert(isNaN(1)); // false

        // parseInt, parseFloat 函数
        // parseInt()函数可以取数据的整数位, 传入的参数可以是 Number 或者 String
        alert("'3.999' parseInt " + parseInt("3.999")); // '3.999' parseInt 3
        alert("3.999 parseInt " + parseInt(3.999)); // 3.999 parseInt 3
        // parseFloat()函数可以将字符串自动转换为数字
        alert(parseFloat("3.14")); // 3.14
        alert(parseFloat(3.14)); // 3.14

        // Math.ceil函数, 向上取整, 1.1向上取整为2
        alert(Math.ceil("123.1"));
        alert(Math.ceil(123.1));

    </script>
</body>
</html>